home *** CD-ROM | disk | FTP | other *** search
/ Software of the Month Club 2000 October / Software of the Month - Ultimate Collection Shareware 277.iso / pc / PROGRAMS / UTILITY / WINLINUX / DATA1.CAB / programs_-_include / NET / SPX.H < prev    next >
Encoding:
C/C++ Source or Header  |  1999-09-17  |  2.6 KB  |  94 lines

  1. #ifndef __NET_SPX_H
  2. #define __NET_SPX_H
  3.  
  4. #include <net/ipx.h>
  5.  
  6. struct spxhdr
  7. {    __u8    cctl;    
  8.     __u8    dtype;
  9. #define SPX_DTYPE_ECONN    0xFE    /* Finished */
  10. #define SPX_DTYPE_ECACK    0xFF    /* Ok */
  11.     __u16    sconn;    /* Connection ID */
  12.     __u16    dconn;    /* Connection ID */
  13.     __u16    sequence;
  14.     __u16    ackseq;
  15.     __u16    allocseq;
  16. };
  17.  
  18. struct ipxspxhdr
  19. {    struct ipxhdr    ipx;
  20.     struct spxhdr    spx;
  21. };
  22.  
  23. #define    SPX_SYS_PKT_LEN    (sizeof(struct ipxspxhdr))
  24.  
  25. #ifdef __KERNEL__
  26. struct spx_opt
  27. {    int    state;
  28.     int    sndbuf;
  29.     int    retries;    /* Number of WD retries */
  30.     int    retransmits;    /* Number of retransmits */
  31.     int    max_retries;
  32.     int    wd_interval;
  33.     void    *owner;
  34.     __u16    dest_connid;    /* Net order */
  35.     __u16    source_connid;    /* Net order */
  36.     __u16    sequence;    /* Host order - our current pkt # */
  37.     __u16    alloc;        /* Host order - max seq we can rcv now */
  38.     __u16    rmt_ack;    /* Host order - last pkt ACKd by remote */
  39.     __u16    rmt_seq;
  40.     __u16    acknowledge;
  41.     __u16    rmt_alloc;    /* Host order - max seq remote can handle now */
  42.     ipx_address    dest_addr;
  43.     ipx_address    source_addr;
  44.     struct timer_list    watchdog;    /* Idle watch */
  45.     struct timer_list    retransmit;    /* Retransmit timer */
  46.     struct sk_buff_head     rcv_queue;
  47.     struct sk_buff_head    transmit_queue;
  48.     struct sk_buff_head     retransmit_queue;
  49. };
  50.  
  51. /* Packet connectino control defines */
  52. #define CCTL_SPXII_XHD  0x01    /* SPX2 extended header */
  53. #define CCTL_SPX_UNKNOWN 0x02   /* Unknown (unused ??) */
  54. #define CCTL_SPXII_NEG  0x04    /* Negotiate size */
  55. #define CCTL_SPXII      0x08    /* Set for SPX2 */
  56. #define CCTL_EOM        0x10    /* End of message marker */
  57. #define CCTL_URG        0x20    /* Urgent marker in SPP (not used in SPX?) */
  58. #define CCTL_ACK        0x40    /* Send me an ACK */
  59. #define CCTL_CTL        0x80    /* Control message */
  60. #define CCTL_SYS        CCTL_CTL        /* Spec uses CCTL_SYS */
  61.  
  62. /* Connection state defines */
  63. #define SPX_CLOSED    7
  64. #define    SPX_CONNECTING    8
  65. #define SPX_CONNECTED    9
  66.  
  67. /* Packet transmit types - Internal */
  68. #define DATA    0    /* Data */
  69. #define ACK    1    /* Data ACK */
  70. #define WDACK    2    /* WD ACK */
  71. #define CONACK    3    /* Connection Request ACK */
  72. #define    CONREQ    4    /* Connection Request */
  73. #define WDREQ    5    /* WD Request */
  74. #define    DISCON    6    /* Informed Disconnect */
  75. #define    DISACK    7    /* Informed Disconnect ACK */
  76. #define RETRAN    8    /* Int. Retransmit of packet */
  77. #define TQUEUE    9    /* Int. Transmit of a queued packet */
  78.  
  79. /*
  80.  * These are good canidates for IOcontrol calls
  81.  */
  82.  
  83. /* Watchdog defines */
  84. #define VERIFY_TIMEOUT  3 * HZ
  85. #define ABORT_TIMEOUT   30 * HZ
  86.  
  87. /* Packet retransmit defines */
  88. #define RETRY_COUNT     10
  89. #define RETRY_TIME      1 * HZ
  90. #define MAX_RETRY_DELAY 5 * HZ
  91.  
  92. #endif /* __KERNEL__ */
  93. #endif /* def __NET_SPX_H */
  94.